/**
 * 严肃声明：
 * 开源版本请务必保留此注释头信息，若删除我方将保留所有法律责任追究！
 * 可正常分享和学习源码，不得用于违法犯罪活动，违者必究！
 * Copyright (c) 2021 十三 all rights reserved.
 * 版权所有，侵权必究！
 */
package com.my.bbs.service;

import com.my.bbs.entity.MyUser;
import com.my.bbs.util.PageQueryUtil;
import com.my.bbs.util.PageResult;

import javax.servlet.http.HttpSession;
import java.util.List;

public interface MyUserService {

    /**
     * 用户注册
     *
     * @param loginName
     * @param password
     * @return
     */
    String register(String loginName, String password, String nickName, HttpSession session);

    /**
     * 登录
     *
     * @param loginName
     * @param passwordMD5
     * @param httpSession
     * @return
     */
    String login(String loginName, String passwordMD5, HttpSession httpSession);

    /**
     * 修改用户信息
     *
     * @param myUser
     * @param httpSession
     * @return
     */
    Boolean updateUserInfo(MyUser myUser, HttpSession httpSession);

    /**
     * 修改用户头像
     *
     * @param myUser
     * @return
     */
    Boolean updateUserHeadImg(MyUser myUser, HttpSession httpSession);

    /**
     * 获取用户详情
     *
     * @param userId
     * @return
     */
    MyUser getUserById(Long userId);

    /**
     * 修改密码
     *
     * @param userId
     * @param originalPassword
     * @param newPassword
     * @return
     */
    Boolean updatePassword(Long userId, String originalPassword, String newPassword);

    /**
     * 封号操作
     * @param user
     * @param session
     * @return
     */
    int bannedUser(MyUser user, HttpSession session);

    /**
     * 解封用户操作
     * @param user
     */
    void unBannedUser(MyUser user);


    /**
     * 返回页面当前页码被封用户
     * @param page
     * @return
     */
    PageResult getPageBannedUser(PageQueryUtil page);

    /**
     * 获取前三的浏览总数的用户
     * @return
     */
    List<MyUser> getSumViews();
}
